/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.yagnus.interfaces;

/**
 *
 * @author hc.busy
 */
public interface Makable<Z> {

    public Z make();

    public <A> Z make(A a);

    public <A,B> Z make(A a, B b);

    public <A,B,C> Z make(A a, B b, C c);

    public <A,B,C,D> Z make(A a, B b, C c, D d);

    public <A,B,C,D,E> Z make(A a, B b, C c, D d, E e);

    public <A,B,C,D,E,F> Z make(A a, B b, C c, D d, E e, F f);

    public <A,B,C,D,E,F,G> Z make(A a, B b, C c, D d, E e, F f, G g);

    public Z make(Object... parameter);
}
